With the expansion of the Internet and World-Wide-Web (or the Web), work and business environments have changed dramatically. Business has become more global and more work is moving to home offices and other locations remote from a centralized office. As a result, the need to be able to access information and resources from a remote computer system is becoming even more important.
For computing intensive work, a remote system is not just one computer or server, but rather a collection of computers either connected locally to a server or by a grid, such as the Terra Grid. The same is also true for data intensive work where data can be stored in distributed databases located on many computers at different locations.
There are currently several technologies for accessing a remote system and the Web, each has its own unique features and shortcomings. Specifically, these technologies include: 1) Web applications; 2) Remote shells; 3) Host-Guest systems.
Web applications: This technology is generally platform independent and allows users to access information and requests for services of a remote server from a web browser. Users can connect to the web portal or server via a non-secured (http) or secured (https) connection from a web page. At the server, a web application configured as a servlet is running to listen for and provide such connections. This is often known as the client-server architecture. The web application can perform tasks that are simple, such as delivering data to the requesting user, or complicated ones that involve authentication, receiving input data from the user, sending a request to the server to run a different application, or receiving output data from the server and then delivering such data back to the user.
In this software architecture, users have a relatively thin web client that communicates directly to the web application servlet and not to the server operating system (OS). Requests for resources on the server are done by the servlet. Furthermore, all computations are done on the server computer. In other words, all the web communications with the server are channeled through the servlet which provides the web data and protects the underlying server.
Remote Shell:
The remote shell technology is generally used for servers running Unix, Linux, or similar computing environments that allow a remote shell to login to the OS. Users can open an X-window on their local desktop environments to connect directly to the server using the secure shell (SSH) protocol. In this case, the user has an account, owns directories on the server, and communicates directly with the server OS using command line commands. Users do not see the desktop environment of the server using SSH.
However, users can run an application that exports a display to the local computer from the server using the X11 forwarding protocol. The X11 protocol “serves out” the screen, keyboard, mouse, etc. Unfortunately, the X11 protocol often has difficulties in exporting graphics from the server. In this technology, every event is executed on the server, which is similar to web application technology. Stability can also be a problem because a weak link in this system is also the network connection. Because the network connection is used constantly, the entire X11 session fails when the network connection fails.
Host-Guest System:
This technology has more recently been available to personal computer (PC) users and is most often a single user application. A user can install a host application on a PC computer designated as the host and a guest application on a PC designated as the guest. Such a system has generally been restricted to running on the Window OS.
Communication between the guest and host applications allows the host application to export the host desktop environment to the guest computer. The user at the guest computer can control the host computer via the exported host desktop environment including assessing data, running applications, etc. Similar to the other technologies, every event is done on the host computer. Note that the user does not communicate directly with the host OS but with the host-guest application running on the host computer. This system has the drawback that the host and guest applications are both installed before the system can be used. In addition, the host-guest system is highly dependent on communications network for the guest application to access the remote computer. When the network connection is unavailable, then the graphical images representing the guest acting on the host computer cannot be sent. Sending these graphical images or remote mirroring of the guest's actions on the host consumes a significant amount of communications bandwidth.
The discussion so far has just addressed the technologies for accessing a single remote computer, not a grid computing system. In order to access a grid computing system, a user must have an account and login into a computer where the account is grid-enabled and have resources allocated to the user on the grid. Technologies for accessing the computing grid currently do exist, such as Globus. Thus if a server is grid enabled, the server can be a gateway to the computing grid. Unfortunately, grid computing services do not generally provide remote access capability for a user who desires to accesses his/her local server that is connected to the computing grid.
For computing and data intensive processes such as scientific modeling and simulation, both individual and collaborative tasks require secure access to licensed applications and data distributed over a number of remote servers, transferring data between these servers and desktop computers, and sharing data with a team. The current paradigm for the computer work environment requires the individual to manually log on to the required servers separately in order to access the needed applications and data. Current technologies are inefficient and cumbersome to use, require a steep learning curve, are unstable due to Internet interruptions, and often require a large bandwidth for graphic applications. Collaboration is made even more difficult because the existing collaborative environments are based on differing and disjointed software frameworks.